export const AUTO_AIM_INTERVAL_RANGE = {
  min: 0.15,
  max: 0.2,
};

export const AUTO_AIM_SCORE_WEIGHTS = {
  distance: 0.5,
  threat: 0.3,
  lineOfSight: 0.2,
};

export const MOVEMENT_HIT_PENALTY_FACTOR = 0.25; // C = 1 - factor * speedNorm

export const MAX_PENETRATION_DEPTH = 3;
export const MAX_PELLET_COUNT = 8;

export const DEFAULT_MAGAZINE_LOW_THRESHOLD = 0.1; // 10%

export enum ItemCategory {
  Weapon = 'weapon',
  Ammo = 'ammo',
  Equipment = 'equipment',
  Attachment = 'attachment',
  Ring = 'ring',
  Charm = 'charm',
  Medical = 'medical',
  Food = 'food',
  Tool = 'tool',
  Throwable = 'throwable',
  Misc = 'misc',
}

export const DRAW_CALL_BUDGET = {
  lobby: 40,
  combat: 120,
};

export const TICK_RATES = {
  render: 60,
  ai: 20,
  navigation: 10,
  stats: 5,
};

export const RANDOM_SEED_MODULUS = 0xffffffff;

export const NEAR_RANGE_THRESHOLD = 5;
export const LASER_HIT_BONUS = 0.15;
export const DEFAULT_CRIT_MULTIPLIER = 1.5;
export const DEFAULT_CRIT_CHANCE = 0.05;
export const DEFAULT_ROF_CAP = 18; // rounds per second
export const SPREAD_FLOOR = 0.01;

// Spec aliases for consistency with speckit wording
export const MOVE_HIT_PENALTY = MOVEMENT_HIT_PENALTY_FACTOR;
export const LASER_NEAR = NEAR_RANGE_THRESHOLD;
export const AUTOAIM_REEVAL_MIN = AUTO_AIM_INTERVAL_RANGE.min;
export const AUTOAIM_REEVAL_MAX = AUTO_AIM_INTERVAL_RANGE.max;


export default {
  MOVE_HIT_PENALTY,
  LASER_NEAR,
  AUTOAIM_REEVAL_MIN,
  AUTOAIM_REEVAL_MAX,
  TICK_RATES,
};
